1. Technical Field
The present invention relates generally to communication over computer networks, and more specifically to a method for the resolution of addresses and queue pairs associated with a particular application.
2. Description of Related Art
In a System Area Network (SAN), the hardware provides a message passing mechanism which can be used for Input/Output devices (I/O) and interprocess communications between general computing nodes (IPC). Consumers access SAN message passing hardware by posting send/receive messages to send/receive work queues on a SAN channel adapter (CA). The send/receive work queues (WQ) are assigned to a consumer as a queue pair (QP). The messages can be sent over five different transport types: Reliable Connected (RC), Reliable datagram (RD), Unreliable Connected (UC), Unreliable Datagram (UD), and Raw Datagram (RawD). Consumers retrieve the results of these messages from a completion queue (CQ) through SAN send and receive work completions (WC). The source channel adapter takes care of segmenting outbound messages and sending them to the destination. The destination channel adapter takes care of reassembling inbound messages and placing them in the memory space designated by the destination's consumer. Two channel adapter types are present, a host channel adapter (HCA) and a target channel adapter (TCA). The host channel adapter is used by general purpose computing nodes to access the SAN fabric. Consumers use SAN verbs to access host channel adapter functions. The channel interface (CI) interprets verbs and directly accesses the channel adapter.
Infiniband ports support multiple queue pairs. A number, called the Queue Pair Number (QPN) is associated with each queue pair. Any communication (for the IB transport modes) is thus addressed to a particular QPN. The receiver, based on the QPN, sends the packet to the relevant QP. If the QP is tied to a particular service or process, the packet demultiplexing is efficiently achieved in hardware, as opposed t handling this function after accepting the packet into a common input queue.
However, the communication between two endpoints is only possible if the two endpoints know each other's location and other parameters required by the IB fabric to send the packet to the desired destination.
Therefore, it would be desirable to a have a method for determining the location and IB parameters necessary to communicate with remote peers.